# 题18
# 3级

# 题：网站要求用户输入用户名和密码进行注册。编写程序以检查用户输入的密码的有效性。
# 以下是检查密码的标准：
# 1. [a-z]之间至少有1个字母
# 2. [0-9]之间至少有1个数字
# 1. [A-Z]之间至少有一个字母
# 3. [$＃@]中至少有1个字符
# 4.最短交易密码长度：6
# 5.交易密码的最大长度：12
# 您的程序应接受一系列逗号分隔的密码，并将根据上述标准进行检查。将打印符合条件的密码，每个密码用逗号分隔。
# 例：如果以下密码作为程序的输入：

# ABd1234@1,a F1#,2w3E*,2We3345
# 然后，程序的输出应该是：

# ABd1234@1

# 提示：如果输入数据被提供给问题，则应该假定它是控制台输入。

# 解：

import re

if __name__ == '__main__':
    Strings = input().split(',')
    Result = []
    for String in Strings:
        MaxLen = 12
        MinLen = 6
        Len = len(String)
        if Len >= MinLen and Len <= MaxLen:
            if len(re.findall("[0-9]", String)) < 1:
                continue
            if len(re.findall("[a-z]", String)) < 1:
                continue
            if len(re.findall("[A-Z]", String)) < 1:
                continue
            if len(re.findall("[$＃@]", String)) < 1:
                continue
            else:
                Result.append(String)
            
    print(','.join(Result))
         

# Qusetion:  这里参考答案使用了 re.search是否会性能更高一点？

# Answer:
# re.search方法
# re.search 扫描整个字符串并返回第一个成功的匹配。
# 则re.search只有最差的时候才会 和 findall的效率相等，只要找到了就立马停下搜索，所以判断单字符存在单个时，应该优先用re.search，
# 但判断多个存在的时候，search不满足要求或者说要做字符串search后截取剩余字符串在做循环search

# 参考自知乎的一篇文章 https://zhuanlan.zhihu.com/p/37027748 Begin
# 正则表达式 re.search 和 re.findall 的区别

# str = ‘http://www.baidu.com123’
# pattern = re.compile(’http://(.*?)123’, re.S)


# result1 = re.search(pattern,str)
# #输出结果为 http://www.baidu.com123
# #search 是查找 pattern 的完整内容，即两个’’引号之间完整的内容，
# #并且在相应的查找范围内找到了第一个符合条件的就停止搜索


# result2 = re.findall(pattern,str)
# #输出结果为 www.baidu.com
# #sear 是查找 pattern 里面的两个括弧之间的内容，即.*?的内容，
# #即我们想查找的内容www.baidu.com，且在相应的查找范围内找到所有符合条件的内容
# 参考自知乎的一篇文章 https://zhuanlan.zhihu.com/p/37027748 End


# 参考代码
# import re
# value = []
# print("请输入：")
# items=[x for x in input().split(',')]    


# for p in items:
#     if len(p)<6 or len(p)>12:
#         continue
#     else:
#         pass
#     if not re.search("[a-z]",p):
#         continue
#     elif not re.search("[0-9]",p):
#         continue
#     elif not re.search("[A-Z]",p):
#         continue
#     elif not re.search("[$#@]",p):
#         continue
#     elif re.search("\s",p):
#         continue
#     else:
#         pass
#     value.append(p)
